package com.hrh.selectsystem.service;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hrh.selectsystem.model.dto.choicerecord.ChoiceRecordAddRequest;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hrh.selectsystem.model.dto.choicerecord.ChoiceRecordQueryRequest;
import com.hrh.selectsystem.model.entity.ChoiceRecord;
import com.hrh.selectsystem.model.vo.choiceRecord.ChoiceRecordQueryMentorVO;
import com.hrh.selectsystem.model.vo.choiceRecord.ChoiceRecordQueryVO;
import com.hrh.selectsystem.model.vo.choiceRecord.ChoiceRecordVO;

/**
* @author hetongxue
* @description 针对表【choice_record(选择记录)】的数据库操作Service
* @createDate 2024-10-26 14:03:03
*/
public interface ChoiceRecordService extends IService<ChoiceRecord> {

    /**
     * 提交选择
     * @param choiceRecordAddRequest
     */
    boolean submitChoices(ChoiceRecordAddRequest choiceRecordAddRequest, Long studentId);

    /**
     * 根据学生id获取查询条件
     * @param studentId
     * @return
     */
    Wrapper<ChoiceRecord> getQueryWrapperById(Long studentId);

    /**
     * 获取学生选择的导师
     * @param studentId
     * @return
     */
    ChoiceRecordQueryMentorVO getStudentMentorChoices(Long studentId);

    /**
     * 分页获取学生申请记录(管理员)
     * @param choiceRecordQueryRequest
     * @param current
     * @param size
     * @return
     */
    Page<ChoiceRecordQueryVO> listSubmitChoicesByPage(ChoiceRecordQueryRequest choiceRecordQueryRequest, long current, long size);

    /**
     * 获取学生已选导师id
     * @param studentId
     * @return
     */
    ChoiceRecordVO getChoiceRecordsByStudentId(Long studentId);
}
